home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / MacODBC / ODBC Tools / INCLUDE / SQL.H < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-12  |  8.1 KB  |  342 lines  |  [TEXT/MPS ]

  1. /*****************************************************************
  2. ** SQL.H - This is the the main include for ODBC Core functions.
  3. **
  4. ** preconditions:
  5. **    #include "windows.h"
  6. **
  7. ** (C) Copyright 1990 - 1994 By Microsoft Corp.
  8. ** (c) 1995 by Visigenic Software, Inc., all rights reserved.
  9. **
  10. **    Updated 5/12/93 for 2.00 specification
  11. **    Updated 5/23/94 for 2.01 specification
  12. **    Updated 11/10/94 for 2.10 specification
  13. *********************************************************************/
  14.  
  15. #ifndef __SQL
  16. #define __SQL
  17.  
  18. #include "sqlplat.h"
  19.  
  20. /*
  21. * ODBCVER            ODBC version number (0x0200).    To exclude
  22. *                    definitions introduced in version 2.0 (or above)
  23. *                    #define ODBCVER 0x0100 before #including <sql.h>
  24. */
  25.  
  26. /* If ODBCVER is not defined, assume version 2.10 */
  27. #ifndef ODBCVER
  28. #define ODBCVER    0x0210
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {                        /* Assume C declarations for C++   */
  33. #endif    /* __cplusplus */
  34.  
  35. /* generally useful constants */
  36. #if (ODBCVER >= 0x0200)
  37. #define SQL_SPEC_MAJOR              2        /* Major version of specification  */
  38. #define SQL_SPEC_MINOR              10    /* Minor version of specification  */
  39. #define SQL_SPEC_STRING     "02.10"        /* String constant for version       */
  40. #endif    /* ODBCVER >= 0x0200 */
  41. #define SQL_SQLSTATE_SIZE          5        /* size of SQLSTATE                */
  42. #define SQL_MAX_MESSAGE_LENGTH    512        /* message buffer size               */
  43. #define SQL_MAX_DSN_LENGTH         32        /* maximum data source name size   */
  44.  
  45. /* RETCODEs */
  46. #define SQL_INVALID_HANDLE        (-2)
  47. #define SQL_ERROR                (-1)
  48. #define SQL_SUCCESS             0
  49. #define SQL_SUCCESS_WITH_INFO    1
  50. #define SQL_NO_DATA_FOUND        100
  51.  
  52. /* Standard SQL datatypes, using ANSI type numbering */
  53. #define SQL_CHAR                1
  54. #define SQL_NUMERIC             2
  55. #define SQL_DECIMAL             3
  56. #define SQL_INTEGER             4
  57. #define SQL_SMALLINT            5
  58. #define SQL_FLOAT                6
  59. #define SQL_REAL                7
  60. #define SQL_DOUBLE                8
  61. #define SQL_VARCHAR             12
  62.  
  63. #define SQL_TYPE_MIN            SQL_CHAR
  64. #define SQL_TYPE_NULL            0
  65. #define SQL_TYPE_MAX            SQL_VARCHAR
  66.  
  67. /* C datatype to SQL datatype mapping    SQL types
  68.                                         ------------------- */
  69. #define SQL_C_CHAR      SQL_CHAR            /* CHAR, VARCHAR, DECIMAL, NUMERIC */
  70. #define SQL_C_LONG      SQL_INTEGER        /* INTEGER            */
  71. #define SQL_C_SHORT   SQL_SMALLINT        /* SMALLINT            */
  72. #define SQL_C_FLOAT   SQL_REAL            /* REAL                */
  73. #define SQL_C_DOUBLE  SQL_DOUBLE        /* FLOAT, DOUBLE    */
  74. #define SQL_C_DEFAULT 99
  75.  
  76. /* NULL status constants.  These are used in SQLColumns, SQLColAttributes,
  77. SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the
  78. nullablity of a column in a table. */
  79. #define SQL_NO_NULLS                0
  80. #define SQL_NULLABLE                1
  81. #define SQL_NULLABLE_UNKNOWN        2
  82.  
  83. /* Special length values */
  84. #define SQL_NULL_DATA                (-1)
  85. #define SQL_DATA_AT_EXEC            (-2)
  86. #define SQL_NTS                     (-3)
  87.  
  88. /* SQLFreeStmt defines */
  89. #define SQL_CLOSE                    0
  90. #define SQL_DROP                    1
  91. #define SQL_UNBIND                    2
  92. #define SQL_RESET_PARAMS            3
  93.  
  94. /* SQLTransact defines */
  95. #define SQL_COMMIT                    0
  96. #define SQL_ROLLBACK                1
  97.  
  98. /* SQLColAttributes defines */
  99. #define SQL_COLUMN_COUNT            0
  100. #define SQL_COLUMN_NAME             1
  101. #define SQL_COLUMN_TYPE             2
  102. #define SQL_COLUMN_LENGTH           3
  103. #define SQL_COLUMN_PRECISION        4
  104. #define SQL_COLUMN_SCALE            5
  105. #define SQL_COLUMN_DISPLAY_SIZE     6
  106. #define SQL_COLUMN_NULLABLE         7
  107. #define SQL_COLUMN_UNSIGNED         8
  108. #define SQL_COLUMN_MONEY            9
  109. #define SQL_COLUMN_UPDATABLE        10
  110. #define SQL_COLUMN_AUTO_INCREMENT    11
  111. #define SQL_COLUMN_CASE_SENSITIVE    12
  112. #define SQL_COLUMN_SEARCHABLE        13
  113. #define SQL_COLUMN_TYPE_NAME        14
  114. #if (ODBCVER >= 0x0200)
  115. #define SQL_COLUMN_TABLE_NAME        15
  116. #define SQL_COLUMN_OWNER_NAME        16
  117. #define SQL_COLUMN_QUALIFIER_NAME    17
  118. #define SQL_COLUMN_LABEL            18
  119. #define SQL_COLATT_OPT_MAX            SQL_COLUMN_LABEL
  120. #else
  121. #define SQL_COLATT_OPT_MAX            SQL_COLUMN_TYPE_NAME
  122. #endif    /* ODBCVER >= 0x0200 */
  123. #define SQL_COLUMN_DRIVER_START        1000
  124.  
  125. #define    SQL_COLATT_OPT_MIN            SQL_COLUMN_COUNT
  126.  
  127. /* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
  128. #define SQL_ATTR_READONLY            0
  129. #define SQL_ATTR_WRITE                1
  130. #define SQL_ATTR_READWRITE_UNKNOWN    2
  131.  
  132. /* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
  133. /* These are also used by SQLGetInfo                     */
  134. #define SQL_UNSEARCHABLE            0
  135. #define SQL_LIKE_ONLY                1
  136. #define SQL_ALL_EXCEPT_LIKE         2
  137. #define SQL_SEARCHABLE                3
  138.  
  139. /* SQLError defines */
  140. #define SQL_NULL_HENV                0
  141. #define SQL_NULL_HDBC                0
  142. #define SQL_NULL_HSTMT                0
  143.  
  144. /* environment specific definitions */
  145. #ifndef EXPORT
  146. #define EXPORT  _export
  147. #endif
  148.  
  149. #ifndef RC_INVOKED
  150. /* SQL portable types for C */
  151. typedef unsigned char       UCHAR;
  152. typedef signed char         SCHAR;
  153. typedef long int            SDWORD;
  154. typedef short int           SWORD;
  155. typedef unsigned long int   UDWORD;
  156. typedef unsigned short int  UWORD;
  157. #if (ODBCVER >= 0x0200)
  158. typedef signed long         SLONG;
  159. typedef signed short        SSHORT;
  160. typedef unsigned long        ULONG;
  161. typedef unsigned short        USHORT;
  162. #endif    /* ODBCVER >= 0x0200 */
  163. typedef double              SDOUBLE;
  164. #if    LDOUBLE_IS_DOUBLE
  165.     typedef double             LDOUBLE; /* long double == short double in Win32 */
  166. #else
  167.     typedef long double     LDOUBLE;
  168. #endif
  169. typedef float               SFLOAT;
  170.  
  171. typedef void FAR *          PTR;
  172.  
  173. typedef void FAR *          HENV;
  174. typedef void FAR *          HDBC;
  175. typedef void FAR *          HSTMT;
  176.  
  177. typedef signed short        RETCODE;
  178.  
  179.  
  180. /* Core Function Prototypes */
  181.  
  182. RETCODE_SQL_API
  183. SQLAllocConnect(
  184.     HENV        henv,
  185.     HDBC   FAR *phdbc);
  186.  
  187. RETCODE_SQL_API
  188. SQLAllocEnv(
  189.     HENV   FAR *phenv);
  190.  
  191. RETCODE_SQL_API
  192. SQLAllocStmt(
  193.     HDBC        hdbc,
  194.     HSTMT  FAR *phstmt);
  195.  
  196. RETCODE_SQL_API
  197. SQLBindCol(
  198.     HSTMT       hstmt,
  199.     UWORD       icol,
  200.     SWORD       fCType,
  201.     PTR         rgbValue,
  202.     SDWORD      cbValueMax,
  203.     SDWORD FAR *pcbValue);
  204.  
  205. RETCODE_SQL_API
  206. SQLCancel(
  207.     HSTMT       hstmt);
  208.  
  209. RETCODE_SQL_API
  210. SQLColAttributes(
  211.     HSTMT       hstmt,
  212.     UWORD       icol,
  213.     UWORD       fDescType,
  214.     PTR         rgbDesc,
  215.     SWORD       cbDescMax,
  216.     SWORD  FAR *pcbDesc,
  217.     SDWORD FAR *pfDesc);
  218.  
  219. RETCODE_SQL_API
  220. SQLConnect(
  221.     HDBC        hdbc,
  222.     UCHAR  FAR *szDSN,
  223.     SWORD       cbDSN,
  224.     UCHAR  FAR *szUID,
  225.     SWORD       cbUID,
  226.     UCHAR  FAR *szAuthStr,
  227.     SWORD       cbAuthStr);
  228.  
  229. RETCODE_SQL_API
  230. SQLDescribeCol(
  231.     HSTMT       hstmt,
  232.     UWORD       icol,
  233.     UCHAR  FAR *szColName,
  234.     SWORD       cbColNameMax,
  235.     SWORD  FAR *pcbColName,
  236.     SWORD  FAR *pfSqlType,
  237.     UDWORD FAR *pcbColDef,
  238.     SWORD  FAR *pibScale,
  239.     SWORD  FAR *pfNullable);
  240.  
  241. RETCODE_SQL_API
  242. SQLDisconnect(
  243.     HDBC        hdbc);
  244.  
  245. RETCODE_SQL_API
  246. SQLError(
  247.     HENV        henv,
  248.     HDBC        hdbc,
  249.     HSTMT       hstmt,
  250.     UCHAR  FAR *szSqlState,
  251.     SDWORD FAR *pfNativeError,
  252.     UCHAR  FAR *szErrorMsg,
  253.     SWORD       cbErrorMsgMax,
  254.     SWORD  FAR *pcbErrorMsg);
  255.  
  256. RETCODE_SQL_API
  257. SQLExecDirect(
  258.     HSTMT       hstmt,
  259.     UCHAR  FAR *szSqlStr,
  260.     SDWORD      cbSqlStr);
  261.  
  262. RETCODE_SQL_API
  263. SQLExecute(
  264.     HSTMT       hstmt);
  265.  
  266. RETCODE_SQL_API
  267. SQLFetch(
  268.     HSTMT       hstmt);
  269.  
  270. RETCODE_SQL_API
  271. SQLFreeConnect(
  272.     HDBC        hdbc);
  273.  
  274. RETCODE_SQL_API
  275. SQLFreeEnv(
  276.     HENV        henv);
  277.  
  278. RETCODE_SQL_API
  279. SQLFreeStmt(
  280.     HSTMT       hstmt,
  281.     UWORD       fOption);
  282.  
  283. RETCODE_SQL_API
  284. SQLGetCursorName(
  285.     HSTMT       hstmt,
  286.     UCHAR  FAR *szCursor,
  287.     SWORD       cbCursorMax,
  288.     SWORD  FAR *pcbCursor);
  289.  
  290. RETCODE_SQL_API
  291. SQLNumResultCols(
  292.     HSTMT       hstmt,
  293.     SWORD  FAR *pccol);
  294.  
  295. RETCODE_SQL_API
  296. SQLPrepare(
  297.     HSTMT       hstmt,
  298.     UCHAR  FAR *szSqlStr,
  299.     SDWORD      cbSqlStr);
  300.  
  301. RETCODE_SQL_API
  302. SQLRowCount(
  303.     HSTMT       hstmt,
  304.     SDWORD FAR *pcrow);
  305.  
  306. RETCODE_SQL_API
  307. SQLSetCursorName(
  308.     HSTMT       hstmt,
  309.     UCHAR  FAR *szCursor,
  310.     SWORD       cbCursor);
  311.  
  312. RETCODE_SQL_API
  313. SQLTransact(
  314.     HENV        henv,
  315.     HDBC        hdbc,
  316.     UWORD       fType);
  317.  
  318. #endif /* RC_INVOKED */
  319.  
  320. /*    Deprecrated functions from prior versions of ODBC */
  321. #ifndef RC_INVOKED
  322.  
  323. RETCODE_SQL_API
  324. SQLSetParam(        /*    Use SQLBindParameter */
  325.     HSTMT       hstmt,
  326.     UWORD       ipar,
  327.     SWORD       fCType,
  328.     SWORD       fSqlType,
  329.     UDWORD      cbColDef,
  330.     SWORD       ibScale,
  331.     PTR         rgbValue,
  332.     SDWORD FAR *pcbValue);
  333.  
  334. #endif /* RC_INVOKED */
  335.  
  336.  
  337. #ifdef __cplusplus
  338. }                                    /* End of extern "C" { */
  339. #endif    /* __cplusplus */
  340.  
  341. #endif  /* #ifndef __SQL */
  342.